package mapper;


import bean.CutPageBean;
import bean.StudentBean;
import bean.UserBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface IUserMapper {
    /**
     * 登录
     *
     * @param userName 用户账号
     * @param password 用户密码
     * @return 登录用户对象，如果登录失败返回空值
     */
    UserBean login(@Param("username") String userName,
                   @Param("password") String password);

    /**
     * 查询当前页数据
     *
     * @param start    起始记录数
     * @param pageSize 每页显示记录数
     * @return 用户集合
     */
    public List<UserBean> cutByList(@Param("start") int start,
                                    @Param("pageSize") int pageSize);

    /**
     * 查找全部用户
     *
     * @return 用户集合
     */
    public List<UserBean> findAll();

    /**
     * 得到数据库表中的总记录
     *
     * @return 总记录数
     */
    public int getTotal();

    /**
     * 添加用户
     *
     * @param user 用户对象
     * @return 如果用户名 在数据库表中已存在，不允许添加，返回false
     * 如果用户名不存在，则允许添加，返回true
     */
    boolean add(@Param("user") UserBean user);


    /**
     * 删除用户
     *
     * @param userId 用户编号
     */
    void delete(int userId);

    /**
     * 修改等级
     *
     * @param userId
     * @param newGrade
     */
    boolean update(@Param("userId") Integer userId,
                @Param("newGrade") String newGrade);

    /**
     * 按id查找用户
     *
     * @param userId
     * @return
     */
    UserBean findById(int userId);

    /**
     * 修改密码
     *
     * @param userId 用户编号
     * @param newPwd 新的密码
     */
    public boolean changePwd(@Param("userId") Integer userId,
                          @Param("newPwd") String newPwd);


}
